package com.d3works.apps.bankpayment.ebics.service;

import com.d3works.apps.bankpayment.db.BankStatement;
import com.d3works.apps.bankpayment.db.BankStatementFileFormat;
import com.d3works.apps.bankpayment.db.EbicsPartner;
import com.d3works.exception.D3worksException;
import java.io.IOException;
import java.util.Collection;
import java.util.List;

public interface EbicsPartnerService {

  List<BankStatement> getBankStatements(EbicsPartner ebicsPartner)
      throws D3worksException, IOException;

  List<BankStatement> getBankStatements(
      EbicsPartner ebicsPartner,
      Collection<BankStatementFileFormat> bankStatementFileFormatCollection)
      throws D3worksException, IOException;

  /**
   * Check if bank details miss mandatory currency
   *
   * @param ebicsPartner
   * @throws D3worksException with the name of the bank details missing currency if the currency is
   *     mandatory
   */
  void checkBankDetailsMissingCurrency(EbicsPartner ebicsPartner) throws D3worksException;
}
